// import com.alibaba.druid.sql.ast.SQLExprImpl;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.statement.SQLSelect;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.Collections;
// import java.util.List;
#pragma once
#include "../../../../ast/SQLExprImpl.h"
#include "OracleExpr.h"

class OracleCursorExpr : virtual public SQLExprImpl, virtual public OracleExpr
{
public:
  SQLSelect_ptr query;

  OracleCursorExpr();

  SHAREDOBJECT(OracleCursorExpr);
  SQLObject_ptr clone();

  OracleCursorExpr(SQLSelect_ptr query);

  SQLSelect_ptr getQuery();

  void setQuery(SQLSelect_ptr query);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  void accept0(OracleASTVisitor_ptr visitor);

  // @Override
  SQLObject_list_ptr getChildren();

  // @Override
  int hashCode();

  // @Override
  bool equals(Object_ptr obj);
};
